﻿var count = 0;

$(function () { //document.ready()
    //Handler para "CERRAR PERIODO ACTIVO"
    $('input[name="btn-CerrarPActivo"]').on({
        click: function (event) {
            //Verificamos que el usuario confirme la accion de cerrar el periodo
            if (!window.confirm('Una vez cerrado el periodo, el sistema empezara a calcular los promedios de todos los alumnos en el periodo cerrado. ¿Esta completamente seguro que desea cerrar el periodo escolar?')) {
                return;
            }

            //Corregimos la posicion del Boton para que se muestre el mensaje de estado
            $('#row-button').css('padding-bottom', '0');

            //Ejecutamos la funcion para ejecutar la operacion de cerrar el periodo
            $.SendDataAjax({
                LoadElementID: "#la-cperiodo",
                URL: "/OPAjax/OP_DesactivarPeriodoActivo",
                ResultElementID: "#res-cperiodo",
                DisabledButtonID: "btn-CerrarPActivo",
                HabilitarButtonAfterSuccess: false,
                EventSuccess: AfterOperationUpdatePartialView
            });
        }
    });

    //Handler para "ABRIR NUEVO PERIODO"
    $('input[name="btn-ActivarPeriodo"]').on({
        click: function (event) {
            //Recuperamos el Periodo que se desea activar y el Año
            var pa = $(this).attr('data-pactivo');
            var a = $('#view-pactivo').attr('data-aactivo');

            //Definimos las instancia del objeto para el Dialog de "Activar Periodo"
            var $dialogF = $.createDialogForm({
                width: '350',
                title: 'Activar nuevo periodo escolar',
                SaveButtonText: 'Activar',
                msgTrySave: 'Activando ' + pa + '...',
                actionDataSubmit: '/OPAjax/OP_ActivarNuevoPeriodo',
                SaveDataSuccess: _UpdatePartialViewPeriodoActivo
            });

            //Creamos cada uno de los campos que debera llevar el Form Dialog
            $dialogF.crearNuevoCampo({
                IDField: 'PNext',
                Label: "Periodo escolar que se activara en el año escolar",
                Text: pa.substring(0, 1) + 'eriodo No. ' + pa.substring(1),
                ReadOnly: true
            });
            $dialogF.crearNuevoCampo({
                IDField: 'FCierre',
                Label: "Ingrese la fecha en la que se deberá cerrar el periodo",
                Tipo: "date",
                Validaciones: 'validate[required,custom[date], funcCall[IsDate]]'
            });

            //Aplicamos el control DatePicker a los campos fecha
            $('.datepick-control').applyFieldDatePicker({
                minDate: new Date(a + '/01/01'),
                maxDate: new Date(a + '/12/31')
            });

            //Aplicamos el motor de validaciones al formulario
            $dialogF.find('form').first().validationEngine();

            //Por ultimo mostramos la ventana del cuadro de dialogo
            $dialogF.dialog('open');
        }
    });

    //Handler para "CERRAR AÑO ESCOLAR"
    $('input[name="btn-cierreAE"]').on({
        click: function (event) {
            //Verificamos que el usuario confirme la accion de cerrar el periodo
            if (!window.confirm('Una vez que se cierre el año escolar, se calculara el Promedio Final para todos los alumnos del instituto. ¿Esta completamente seguro de cerrar este año escolar?')) {
                return;
            }

            //Ejecutamos la funcion para ejecutar la operacion de cerrar el periodo
            $.SendDataAjax({
                LoadElementID: "#la-cae",
                URL: "/OPAjax/OP_CerrarAñoEscolar",
                ResultElementID: "#res-cae",
                DisabledButtonID: "btn-cierreAE",
                HabilitarButtonAfterSuccess: false,
                EventSuccess: AfterOperationUpdatePartialView
            });
        }
    });

    //Handler para "CERRAR PERIODO DE SUFICIENCIA"
    $('input[name="btn-cierreSufi"]').on({
        click: function (event) {
            //Verificamos que el usuario confirme la accion de cerrar el periodo
            if (!window.confirm('¿Esta completamente seguro que desea cerrar el Periodo de Reposición de Materias?')) {
                return;
            }

            //Ejecutamos la funcion para ejecutar la operacion de cerrar el periodo
            $.SendDataAjax({
                LoadElementID: "#la-csufi",
                URL: "/OPAjax/OP_CerrarPeriodoSufi",
                ResultElementID: "#res-csufi",
                DisabledButtonID: "btn-cierreSufi",
                HabilitarButtonAfterSuccess: false,
                EventSuccess: AfterOperationUpdatePartialView
            });
        }
    });
});

function AfterOperationUpdatePartialView() {
    count = 5;
    $('.redirect-msg').html("<br /><strong>Se actualizara esta información en " + count + "…</strong>");
    setTimeout("WaitSecondsToRefresh()", 1000);
};

function WaitSecondsToRefresh() {
    if (count <= 1) {
        _UpdatePartialViewPeriodoActivo();
    } else {
        count -= 1;
        $('.redirect-msg').html("<br /><strong>Se actualizará esta información en " + count + "…</strong>");
        setTimeout("WaitSecondsToRefresh()", 1000);
    }
};

_UpdatePartialViewPeriodoActivo = function () {
    var $viewP = $('#view-pactivo');
    $viewP.empty()
    $viewP.LoadPartialView({
        LoadElementID: 'loading-panel-1',
        URL: '/RegAcad/PartialView_PeriodoActivo'
    });
}